home *** CD-ROM | disk | FTP | other *** search
/ Amoszine 3 / Amoszine 3.adf / MORE_SOURCE / AJC-HOMING-ALIENS.AMOS / AJC-HOMING-ALIENS.amosSourceCode
AMOS Source Code  |  1992-02-26  |  2KB  |  121 lines

  1. '
  2. ' "HOMING ALIENS"
  3. ' By Andrew Campbell 
  4. '    
  5. ' This is a basic example of how you could possibly make "aliens"
  6. ' chase your player. It even has a 2-screens-in-size arena and can 
  7. ' handle upto 50 "monsters" (slows down though). 
  8. '
  9. ' Stick a joystick in the usual port and see what you think. Hmmmm.... 
  10. '
  11. '
  12. '
  13. '
  14. Dim EX(50),EY(50)
  15. Global EX(),EY(),NUMBER_OF_ALIENS,I,CEN
  16.  
  17. _GET_BOBS
  18.  
  19. Screen Open 0,640,256,8,Lowres : Curs Off : Flash Off : Hide On : Cls 0
  20. Default Palette 0,0,0,0,0,0,0,0
  21. Screen 0 : Screen Display 0,,,320,256
  22. Ink 2 : Box 0,0 To 639,255
  23. X=50 : Y=50 : CEN=1
  24. NUMBER_OF_ALIENS=20
  25. Synchro Off 
  26. Hot Spot 1,4,4
  27. Autoback 0
  28. Double Buffer 
  29. Auto View On 
  30. View 
  31. _GET_ENEMIES
  32. Fade 1,$0,$FFF,$F00,$F0,$F,0,0,0
  33. '
  34. ' MAIN ROUTINE 
  35. '
  36.  
  37. GO_FOR_IT:
  38.  
  39. Repeat 
  40.  
  41. KG:
  42.  Bob 1,X,Y,1
  43.  Gosub MALIEN
  44. If Joy(1)>0
  45.  Gosub MALIEN
  46.       If Jup(1) : DR=1 : Gosub GOIT : End If 
  47.    If Jright(1) : DR=2 : Gosub GOIT : End If 
  48.     If Jdown(1) : DR=3 : Gosub GOIT : End If 
  49.     If Jleft(1) : DR=4 : Gosub GOIT : End If 
  50. End If 
  51. Goto KG
  52. GOIT:
  53.  
  54.  If DR=1 : Dec Y : End If 
  55.  If DR=2 : Inc X : If X>150 : Inc XOFF : Gosub UPD : End If : End If 
  56.  If DR=3 : Inc Y : End If 
  57.  If DR=4 : Dec X : If X<490 : Dec XOFF : Gosub UPD : End If : End If 
  58.  
  59.  If X<4 : X=4 : End If 
  60.  If X>640-4 : X=640-4 : End If 
  61.  If Y<4 : Y=4 : End If 
  62.  If Y>256-4 : Y=256-4 : End If 
  63.  
  64. Return 
  65. Until DEAD=1
  66.  
  67. '
  68. ' MOVE THE SCREEN  
  69. '
  70. UPD:
  71.  If XOFF<0 Then XOFF=0
  72.  If XOFF>320 : XOFF=320 : End If 
  73.  If YOFF<0 Then YOFF=0
  74.  If YOFF>264 : YOFF=264 : End If 
  75.  
  76.  Screen Offset 0,XOFF,YOFF
  77.  
  78. Return 
  79.  
  80. MALIEN:
  81.  R=Rnd(5)
  82.  If R=1 : Goto SK : End If 
  83.  If EX(CEN)<X : Inc EX(CEN) : End If 
  84.  If EX(CEN)>X : Dec EX(CEN) : End If 
  85.  SK:
  86.  If EY(CEN)<Y : Inc EY(CEN) : End If 
  87.  If EY(CEN)>Y : Dec EY(CEN) : End If 
  88.  Bob CEN+1,EX(CEN),EY(CEN),
  89.  Inc CEN
  90.  If CEN>NUMBER_OF_ALIENS : CEN=1 : End If 
  91. Return 
  92.  
  93. Procedure _GET_BOBS
  94.  
  95. Auto View Off 
  96.  
  97. Screen Open 0,320,256,8,Lowres : Curs Off : Flash Off : Hide On : Cls 0
  98. Cls 0
  99.  
  100. Ink 1,0
  101. Text 0,5,"*"
  102. Get Bob 1,0,0 To 8,8
  103. Cls 0
  104.  
  105. For I=2 To 30
  106.  Ink 3,0
  107.  Text 0,5,Chr$(Rnd(30)+90)
  108.  Get Bob I,0,0 To 8,8
  109. Next I
  110.  
  111. End Proc
  112. Procedure _GET_ENEMIES
  113.  
  114. For I=1 To NUMBER_OF_ALIENS
  115.  EX(I)=Rnd(600)+30
  116.  EY(I)=Rnd(200)+40
  117.  Bob I+1,EX(I),EY(I),I+1
  118.  Wait Vbl 
  119. Next I
  120.  
  121. End Proc